将left join拆分成多条sql语句

您所在的位置:网站首页 上海 移民中介 何梅 将left join拆分成多条sql语句

将left join拆分成多条sql语句

2024-05-29 16:06| 来源: 网络整理| 查看: 265

本文讲解如何把一条带有一个或多个left join或right join的sql语句拆分成多条sql语句。MySQL进行连表查询效率是很低的,特别是数据很大,而且并发量很高的情况,索引都无法解决问题,最好的办法就是把sql语句拆分成多条单表查询的sql。

我们公司电商网站现在要做网站服务化,用java做中间件,PHP调用java接口获取数据,数据表也进行了拆分,分库,要求不使用连表查询,有连表查询的sql语句想办法拆分多条sql语句,然后统一使用java接口。

这样做的目的一是为了网站服务化做调整,数据的增删查改都封装到具体的业务里面,二是为了提高性能,减少数据库压力,说来说去还是为了提高效率。

我们看看一个join多张表的sql如何拆分多条sql。

select u1.uid,u1.uname,u2.add from user as u1 left join userinfo as u2 on u1.uid=u2.uid left join money as u3 on u1.uid=u3.uid where u1.country='c'

这条sql语句left join三张表,分别是user作为主表,连userinfo,money表。首先可以查出所有user的数据,有了第一条拆分的sql:

select uid,uname from user where country='c'

由于条件是user.uid=userinfo.uid,所以可以把取得的uid用”,”连接,第二个拆分的sql如下:

select uid,add from userinfo where uid in(32,34,23,23)

这样得出了符合第一个left join条件下的uid,uname和add字段的结果,其实到这里就已经实现了以上left join语句的需求,如果还要查询money表的字段,以此类推,把uid作为in的条件查money表。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3